<!DOCTYPE html>
<html lang="en-US">
<head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="language" content="en" />
        <link href="./assets/ffd55088/css/bootstrap.css" rel="stylesheet">
<link href="./assets/5cf9384a/solarized_light.css" rel="stylesheet">
<link href="./assets/6c54116e/style.css" rel="stylesheet">
<script src="./assets/a44cef0f/jquery.js"></script>
<script src="./assets/ffd55088/js/bootstrap.js"></script>
<script src="./assets/8ac4e28a/jssearch.js"></script>    <title>The Definitive Guide to Yii 2.0</title>
</head>
<body>

<div class="wrap">
    <nav id="w719" class="navbar-inverse navbar-fixed-top navbar" role="navigation"><div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w719-collapse"><span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span></button><a class="navbar-brand" href="./index.html">The Definitive Guide to Yii 2.0</a></div><div id="w719-collapse" class="collapse navbar-collapse"><ul id="w720" class="navbar-nav nav"><li><a href="./index.html">Class reference</a></li>
<li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">Extensions <b class="caret"></b></a><ul id="w721" class="dropdown-menu"><li><a href="./ext-apidoc-index.html" tabindex="-1">apidoc</a></li>
<li><a href="./ext-authclient-index.html" tabindex="-1">authclient</a></li>
<li><a href="./ext-bootstrap-index.html" tabindex="-1">bootstrap</a></li>
<li><a href="./ext-codeception-index.html" tabindex="-1">codeception</a></li>
<li><a href="./ext-debug-index.html" tabindex="-1">debug</a></li>
<li><a href="./ext-elasticsearch-index.html" tabindex="-1">elasticsearch</a></li>
<li><a href="./ext-faker-index.html" tabindex="-1">faker</a></li>
<li><a href="./ext-gii-index.html" tabindex="-1">gii</a></li>
<li><a href="./ext-imagine-index.html" tabindex="-1">imagine</a></li>
<li><a href="./ext-jui-index.html" tabindex="-1">jui</a></li>
<li><a href="./ext-mongodb-index.html" tabindex="-1">mongodb</a></li>
<li><a href="./ext-redis-index.html" tabindex="-1">redis</a></li>
<li><a href="./ext-smarty-index.html" tabindex="-1">smarty</a></li>
<li><a href="./ext-sphinx-index.html" tabindex="-1">sphinx</a></li>
<li><a href="./ext-swiftmailer-index.html" tabindex="-1">swiftmailer</a></li>
<li><a href="./ext-twig-index.html" tabindex="-1">twig</a></li></ul></li>
<li><a href="./guide-README.html">Guide</a></li></ul><div class="navbar-form navbar-left" role="search">
  <div class="form-group">
    <input id="searchbox" type="text" class="form-control" placeholder="Search">
  </div>
</div>
</div></nav>
    <div id="search-resultbox" style="display: none;" class="modal-content">
        <ul id="search-results">
        </ul>
    </div>

    
<div class="row">
    <div class="col-md-2">
                <div id="navigation" class="list-group"><a class="list-group-item" href="#navigation-703" data-toggle="collapse" data-parent="#navigation">Introduction <b class="caret"></b></a><div id="navigation-703" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-intro-yii.html">About Yii</a>
<a class="list-group-item" href="./guide-intro-upgrade-from-v1.html">Upgrading from Version 1.1</a></div>
<a class="list-group-item" href="#navigation-704" data-toggle="collapse" data-parent="#navigation">Getting Started <b class="caret"></b></a><div id="navigation-704" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-start-installation.html">Installing Yii</a>
<a class="list-group-item" href="./guide-start-workflow.html">Running Applications</a>
<a class="list-group-item" href="./guide-start-hello.html">Saying Hello</a>
<a class="list-group-item" href="./guide-start-forms.html">Working with Forms</a>
<a class="list-group-item" href="./guide-start-databases.html">Working with Databases</a>
<a class="list-group-item" href="./guide-start-gii.html">Generating Code with Gii</a>
<a class="list-group-item" href="./guide-start-looking-ahead.html">Looking Ahead</a></div>
<a class="list-group-item" href="#navigation-705" data-toggle="collapse" data-parent="#navigation">Application Structure <b class="caret"></b></a><div id="navigation-705" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-structure-overview.html">Overview</a>
<a class="list-group-item" href="./guide-structure-entry-scripts.html">Entry Scripts</a>
<a class="list-group-item" href="./guide-structure-applications.html">Applications</a>
<a class="list-group-item" href="./guide-structure-application-components.html">Application Components</a>
<a class="list-group-item" href="./guide-structure-controllers.html">Controllers</a>
<a class="list-group-item" href="./guide-structure-models.html">Models</a>
<a class="list-group-item" href="./guide-structure-views.html">Views</a>
<a class="list-group-item" href="./guide-structure-modules.html">Modules</a>
<a class="list-group-item" href="./guide-structure-filters.html">Filters</a>
<a class="list-group-item" href="./guide-structure-widgets.html">Widgets</a>
<a class="list-group-item" href="./guide-structure-assets.html">Assets</a>
<a class="list-group-item" href="./guide-structure-extensions.html">Extensions</a></div>
<a class="list-group-item" href="#navigation-706" data-toggle="collapse" data-parent="#navigation">Handling Requests <b class="caret"></b></a><div id="navigation-706" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-runtime-overview.html">Overview</a>
<a class="list-group-item" href="./guide-runtime-bootstrapping.html">Bootstrapping</a>
<a class="list-group-item" href="./guide-runtime-routing.html">Routing and URL Creation</a>
<a class="list-group-item" href="./guide-runtime-requests.html">Requests</a>
<a class="list-group-item" href="./guide-runtime-responses.html">Responses</a>
<a class="list-group-item" href="./guide-runtime-sessions-cookies.html">Sessions and Cookies</a>
<a class="list-group-item" href="./guide-runtime-handling-errors.html">Handling Errors</a>
<a class="list-group-item" href="./guide-runtime-logging.html">Logging</a></div>
<a class="list-group-item" href="#navigation-707" data-toggle="collapse" data-parent="#navigation">Key Concepts <b class="caret"></b></a><div id="navigation-707" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-concept-components.html">Components</a>
<a class="list-group-item" href="./guide-concept-properties.html">Properties</a>
<a class="list-group-item" href="./guide-concept-events.html">Events</a>
<a class="list-group-item" href="./guide-concept-behaviors.html">Behaviors</a>
<a class="list-group-item" href="./guide-concept-configurations.html">Configurations</a>
<a class="list-group-item" href="./guide-concept-aliases.html">Aliases</a>
<a class="list-group-item" href="./guide-concept-autoloading.html">Class Autoloading</a>
<a class="list-group-item" href="./guide-concept-service-locator.html">Service Locator</a>
<a class="list-group-item" href="./guide-concept-di-container.html">Dependency Injection Container</a></div>
<a class="list-group-item" href="#navigation-708" data-toggle="collapse" data-parent="#navigation">Working with Databases <b class="caret"></b></a><div id="navigation-708" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-db-dao.html">Data Access Objects</a>
<a class="list-group-item" href="./guide-db-query-builder.html">Query Builder</a>
<a class="list-group-item" href="./guide-db-active-record.html">Active Record</a>
<a class="list-group-item" href="./guide-db-migrations.html">Migrations</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-sphinx/blob/master/docs/guide/README.md">Sphinx</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-redis/blob/master/docs/guide/README.md">Redis</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-mongodb/blob/master/docs/guide/README.md">MongoDB</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-elasticsearch/blob/master/docs/guide/README.md">ElasticSearch</a></div>
<a class="list-group-item" href="#navigation-709" data-toggle="collapse" data-parent="#navigation">Getting Data from Users <b class="caret"></b></a><div id="navigation-709" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-input-forms.html">Creating Forms</a>
<a class="list-group-item" href="./guide-input-validation.html">Validating Input</a>
<a class="list-group-item" href="./guide-input-file-upload.html">Uploading Files</a>
<a class="list-group-item" href="./guide-input-tabular-input.html">Collecting Tabular Input</a>
<a class="list-group-item" href="./guide-input-multiple-models.html">Getting Data for Multiple Models</a></div>
<a class="list-group-item" href="#navigation-710" data-toggle="collapse" data-parent="#navigation">Displaying Data <b class="caret"></b></a><div id="navigation-710" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-output-formatting.html">Data Formatting</a>
<a class="list-group-item" href="./guide-output-pagination.html">Pagination</a>
<a class="list-group-item" href="./guide-output-sorting.html">Sorting</a>
<a class="list-group-item" href="./guide-output-data-providers.html">Data Providers</a>
<a class="list-group-item" href="./guide-output-data-widgets.html">Data Widgets</a>
<a class="list-group-item" href="./guide-output-client-scripts.html">Working with Client Scripts</a>
<a class="list-group-item" href="./guide-output-theming.html">Theming</a></div>
<a class="list-group-item" href="#navigation-711" data-toggle="collapse" data-parent="#navigation">Security <b class="caret"></b></a><div id="navigation-711" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-security-overview.html">Overview</a>
<a class="list-group-item" href="./guide-security-authentication.html">Authentication</a>
<a class="list-group-item" href="./guide-security-authorization.html">Authorization</a>
<a class="list-group-item" href="./guide-security-passwords.html">Working with Passwords</a>
<a class="list-group-item" href="./guide-security-cryptography.html">Cryptography</a>
<a class="list-group-item" href="./guide-structure-views.html#security">Views security</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-authclient/blob/master/docs/guide/README.md">Auth Clients</a>
<a class="list-group-item" href="./guide-security-best-practices.html">Best Practices</a></div>
<a class="list-group-item" href="#navigation-712" data-toggle="collapse" data-parent="#navigation">Caching <b class="caret"></b></a><div id="navigation-712" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-caching-overview.html">Overview</a>
<a class="list-group-item" href="./guide-caching-data.html">Data Caching</a>
<a class="list-group-item" href="./guide-caching-fragment.html">Fragment Caching</a>
<a class="list-group-item" href="./guide-caching-page.html">Page Caching</a>
<a class="list-group-item" href="./guide-caching-http.html">HTTP Caching</a></div>
<a class="list-group-item" href="#navigation-713" data-toggle="collapse" data-parent="#navigation">RESTful Web Services <b class="caret"></b></a><div id="navigation-713" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-rest-quick-start.html">Quick Start</a>
<a class="list-group-item" href="./guide-rest-resources.html">Resources</a>
<a class="list-group-item" href="./guide-rest-controllers.html">Controllers</a>
<a class="list-group-item" href="./guide-rest-routing.html">Routing</a>
<a class="list-group-item" href="./guide-rest-response-formatting.html">Response Formatting</a>
<a class="list-group-item" href="./guide-rest-authentication.html">Authentication</a>
<a class="list-group-item" href="./guide-rest-rate-limiting.html">Rate Limiting</a>
<a class="list-group-item" href="./guide-rest-versioning.html">Versioning</a>
<a class="list-group-item" href="./guide-rest-error-handling.html">Error Handling</a></div>
<a class="list-group-item" href="#navigation-714" data-toggle="collapse" data-parent="#navigation">Development Tools <b class="caret"></b></a><div id="navigation-714" class="submenu panel-collapse collapse"><a class="list-group-item" href="https://github.com/yiisoft/yii2-debug/blob/master/docs/guide/README.md">Debug Toolbar and Debugger</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-gii/blob/master/docs/guide/README.md">Generating Code using Gii</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-apidoc">Generating API Documentation</a></div>
<a class="list-group-item" href="#navigation-715" data-toggle="collapse" data-parent="#navigation">Testing <b class="caret"></b></a><div id="navigation-715" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-test-overview.html">Overview</a>
<a class="list-group-item" href="./guide-test-environment-setup.html">Testing environment setup</a>
<a class="list-group-item" href="./guide-test-unit.html">Unit Tests</a>
<a class="list-group-item" href="./guide-test-functional.html">Functional Tests</a>
<a class="list-group-item" href="./guide-test-acceptance.html">Acceptance Tests</a>
<a class="list-group-item" href="./guide-test-fixtures.html">Fixtures</a></div>
<a class="list-group-item" href="#navigation-716" data-toggle="collapse" data-parent="#navigation">Special Topics <b class="caret"></b></a><div id="navigation-716" class="submenu panel-collapse collapse"><a class="list-group-item" href="https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/README.md">Advanced Project Template</a>
<a class="list-group-item" href="./guide-tutorial-start-from-scratch.html">Building Application from Scratch</a>
<a class="list-group-item" href="./guide-tutorial-console.html">Console Commands</a>
<a class="list-group-item" href="./guide-tutorial-core-validators.html">Core Validators</a>
<a class="list-group-item" href="./guide-tutorial-i18n.html">Internationalization</a>
<a class="list-group-item" href="./guide-tutorial-mailing.html">Mailing</a>
<a class="list-group-item" href="./guide-tutorial-performance-tuning.html">Performance Tuning</a>
<a class="list-group-item" href="./guide-tutorial-shared-hosting.html">Shared Hosting Environment</a>
<a class="list-group-item" href="./guide-tutorial-template-engines.html">Template Engines</a>
<a class="list-group-item" href="./guide-tutorial-yii-integration.html">Working with Third-Party Code</a></div>
<a class="list-group-item" href="#navigation-717" data-toggle="collapse" data-parent="#navigation">Widgets <b class="caret"></b></a><div id="navigation-717" class="submenu panel-collapse collapse"><a class="list-group-item" href="https://github.com/yiisoft/yii2-bootstrap/blob/master/docs/guide/README.md">Bootstrap Widgets</a>
<a class="list-group-item" href="https://github.com/yiisoft/yii2-jui/blob/master/docs/guide/README.md">jQuery UI Widgets</a></div>
<a class="list-group-item" href="#navigation-718" data-toggle="collapse" data-parent="#navigation">Helpers <b class="caret"></b></a><div id="navigation-718" class="submenu panel-collapse collapse"><a class="list-group-item" href="./guide-helper-overview.html">Overview</a>
<a class="list-group-item" href="./guide-helper-array.html">ArrayHelper</a>
<a class="list-group-item" href="./guide-helper-html.html">Html</a>
<a class="list-group-item" href="./guide-helper-url.html">Url</a></div></div>    </div>
    <div class="col-md-9 guide-content" role="main">
        <h1>A <span id="a"></span><a href="#a" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>alias <span id="alias"></span><a href="#alias" class="hashlink">&para;</a></h2><p>Alias is a string that's used by Yii to refer to the class or directory such as <code>@app/vendor</code>.</p>
<h2>application <span id="application"></span><a href="#application" class="hashlink">&para;</a></h2><p>The application is the central object during HTTP request. It contains a number of components and with these is getting info from request and dispatching it to an appropriate controller for further processing.</p>
<p>The application object is instantiated as a singleton by the entry script. The application singleton can be accessed at any place via <code>\Yii::$app</code>.</p>
<h2>assets <span id="assets"></span><a href="#assets" class="hashlink">&para;</a></h2><p>Asset refers to a resource file. Typically it contains JavaScript or CSS code but can be anything else that is accessed via HTTP.</p>
<h2>attribute <span id="attribute"></span><a href="#attribute" class="hashlink">&para;</a></h2><p>An attribute is a model property (a class member variable or a magic property defined via <code>__get()</code>/<code>__set()</code>) that stores <strong>business data</strong>.</p>
<h1>B <span id="b"></span><a href="#b" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>bundle <span id="bundle"></span><a href="#bundle" class="hashlink">&para;</a></h2><p>Bundle, known as package in Yii 1.1, refers to a number of assets and a configuration file that describes dependencies and lists assets.</p>
<h1>C <span id="c"></span><a href="#c" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>configuration <span id="configuration"></span><a href="#configuration" class="hashlink">&para;</a></h2><p>Configuration may refer either to the process of setting properties of an object or to a configuration file that stores settings for an object or a class of objects.</p>
<h1>E <span id="e"></span><a href="#e" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>extension <span id="extension"></span><a href="#extension" class="hashlink">&para;</a></h2><p>Extension is a set of classes, asset bundles and configurations that adds more features to the application.</p>
<h1>I <span id="i"></span><a href="#i" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>installation <span id="installation"></span><a href="#installation" class="hashlink">&para;</a></h2><p>Installation is a process of preparing something to work either by following a readme file or by executing specially prepared script. In case of Yii it's setting permissions and fullfilling software requirements.</p>
<h1>M <span id="m"></span><a href="#m" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>module <span id="module"></span><a href="#module" class="hashlink">&para;</a></h2><p>Module is a sub-application which contains MVC elements by itself, such as models, views, controllers, etc. and can be used withing the main application. Typically by forwarding requests to the module instead of handling it via controllers.</p>
<h1>N <span id="n"></span><a href="#n" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>namespace <span id="namespace"></span><a href="#namespace" class="hashlink">&para;</a></h2><p>Namespace refers to a <a href="http://php.net/manual/en/language.namespaces.php">PHP language feature</a> which is actively used in Yii 2.</p>
<h1>P <span id="p"></span><a href="#p" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>package <span id="package"></span><a href="#package" class="hashlink">&para;</a></h2><p><a href="#bundle">See bundle</a>.</p>
<h1>V <span id="v"></span><a href="#v" class="hashlink">&para;</a></h1>
<div class="toc"><ol><li><a href="#alias">alias</a></li>
<li><a href="#application">application</a></li>
<li><a href="#assets">assets</a></li>
<li><a href="#attribute">attribute</a></li>
<li><a href="#bundle">bundle</a></li>
<li><a href="#configuration">configuration</a></li>
<li><a href="#extension">extension</a></li>
<li><a href="#installation">installation</a></li>
<li><a href="#module">module</a></li>
<li><a href="#namespace">namespace</a></li>
<li><a href="#package">package</a></li>
<li><a href="#vendor">vendor</a></li></ol></div>
<h2>vendor <span id="vendor"></span><a href="#vendor" class="hashlink">&para;</a></h2><p>Vendor is an organization or individual developer providing code in form of extensions, modules or libraries.</p>
        <div class="toplink"><a href="#" class="h1" title="go to top"><span class="glyphicon glyphicon-arrow-up"></a></div>
    </div>
</div>


</div>

<footer class="footer">
        <p class="pull-right"><small>Page generated on Sat, 09 Jul 2016 12:16:29 +0000</small></p>
    Powered by <a href="http://www.yiiframework.com/" rel="external">Yii Framework</a></footer>

<script type="text/javascript">jQuery(document).ready(function () {
    var shiftWindow = function () { scrollBy(0, -50) };
    if (location.hash) setTimeout(shiftWindow, 1);
    window.addEventListener("hashchange", shiftWindow);
var element = document.createElement("script");
element.src = "./jssearch.index.js";
document.body.appendChild(element);

var searchBox = $('#searchbox');

// search when typing in search field
searchBox.on("keyup", function(event) {
    var query = $(this).val();

    if (query == '' || event.which == 27) {
        $('#search-resultbox').hide();
        return;
    } else if (event.which == 13) {
        var selectedLink = $('#search-resultbox a.selected');
        if (selectedLink.length != 0) {
            document.location = selectedLink.attr('href');
            return;
        }
    } else if (event.which == 38 || event.which == 40) {
        $('#search-resultbox').show();

        var selected = $('#search-resultbox a.selected');
        if (selected.length == 0) {
            $('#search-results').find('a').first().addClass('selected');
        } else {
            var next;
            if (event.which == 40) {
                next = selected.parent().next().find('a').first();
            } else {
                next = selected.parent().prev().find('a').first();
            }
            if (next.length != 0) {
                var resultbox = $('#search-results');
                var position = next.position();

//              TODO scrolling is buggy and jumps around
//                resultbox.scrollTop(Math.floor(position.top));
//                console.log(position.top);

                selected.removeClass('selected');
                next.addClass('selected');
            }
        }

        return;
    }
    $('#search-resultbox').show();
    $('#search-results').html('<li><span class="no-results">No results</span></li>');

    var result = jssearch.search(query);

    if (result.length > 0) {
        var i = 0;
        var resHtml = '';

        for (var key in result) {
            if (i++ > 20) {
                break;
            }
            resHtml = resHtml +
            '<li><a href="' + result[key].file.u.substr(3) +'"><span class="title">' + result[key].file.t + '</span>' +
            '<span class="description">' + result[key].file.d + '</span></a></li>';
        }
        $('#search-results').html(resHtml);
    }
});

// hide the search results on ESC
$(document).on("keyup", function(event) { if (event.which == 27) { $('#search-resultbox').hide(); } });
// hide search results on click to document
$(document).bind('click', function (e) { $('#search-resultbox').hide(); });
// except the following:
searchBox.bind('click', function(e) { e.stopPropagation(); });
$('#search-resultbox').bind('click', function(e) { e.stopPropagation(); });

});</script></body>
</html>
